package com.grape.enums;

import lombok.Getter;

/**
 * @author  putao
 * @email   2628279194@qq.com
 */
@Getter
public enum ResultEnums {

    /**
     * 查询相关
     */

    SELECT_SUCCESS(true, 10000, "查询成功"),
    SELECT_NOT_FOUND(false, 10009, "找不到数据"),

    /**
     * 新增相关
     */
    INSERT_SUCCESS(true, 20000, "新增成功"),

    /**
     * 新增相关
     */
    UPDATE_SUCCESS(true, 30000, "修改成功"),
    UPDATE_NOT_FOUND(false, 30009, "找不到数据"),

    /**
     * 删除相关
     */
    DELETE_SUCCESS(true, 40000, "删除成功"),
    DELETE_NOT_FOUND(false, 40009, "找不到数据"),
    DELETE_STATUS_ERROR(false, 40008, "状态不满足删除条件"),

    /**
     * 认证相关
     */
    AUTHENTICATION_ERROR(false, 50001, "未登录，请先登录"),
    AUTHENTICATION_FAIL(false, 50002, "认证失败："),
    INVALID_TOKEN(false, 50003, "无效的认证，请重新登录"),
    OVERDUE_TOKEN(false, 50004, "认证已过期，请刷新或者重新登录"),
    OVERDUE_TOKEN_V2(false, 50004, "认证已过期V2，请刷新或者重新登录"),
    FAILED_TOKEN(false, 50004, "认证已失效，请重新登录"),
    PARSE_TOKEN_ERROR(false, 50005, "解析认证数据异常，请重新登录"),
    AUTHENTICATION_NO_PERMISSION(false, 50006, "没有权限访问，请联系管理员"),


    /**
     * 操作成功
     */
    OPERATION_SUCCESS(true, 60000, "操作成功"),
    OPERATION_ERROR(false, 60009, "操作失败"),
    USERINFO_NOT_EXIST_ERROR(false, 60005, "个人信息为空，请先完善个人信息"),
    PARAMETER_VERIFICATION_FAILED(false, 60004, "参数校验失败，请检查参数"),

    /**
     * token相关
     */
    REFRESH_SUCCESS(true, 70000, "刷新成功"),
    REFRESH_ERROR(false, 70009, "刷新失败"),

    /**
     * 校验数据
     */
    VERIFY_PARAMETER_ERROR(false, 80000, "缺少参数，数据校验失败"),


    /**
     * 系统异常
     */
    CALL_BACK_DATA(false, 90000, "兜底数据"),
    SYSTEM_ERROR(false, 99999, "系统内部错误"),
    LOGOUT_SUCCESS(true, 90001, "退出成功"),
    REPEAT_SUBMIT(false, 90002, "数据处理中，请勿频繁重复提交"),
    SERVICE_LOADING(false, 90003, "服务正在加载中...");


    /** 是否成功 */
    private final Boolean success;

    /** 结果编码 */
    private final int code;

    /** 消息 */
    private final String message;

    ResultEnums(Boolean success, int code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }
}
